Power conservation management is vital in graphics systems operating off battery or other such exhaustible power source. Specifically, the top video game applications of contemporary gaming industry are very demanding in terms of graphics processing power. Those applications are typically running on a desktop system at a high frame rate of 50-300 FPS, assisted by powerful discrete GPUs.
The discrete GPU is an extreme power consumer in computer systems, therefore in off battery systems it is mostly replaced by an integrated GPU. An integrated GPU is much less power hungry. However, the increasing use of iGPUs in a battery powered devices, such as notebooks, tablets and mobile phones, calls for optimizing iGPUs power consumption to achieve better power efficiency. This is particularly important for real time graphics applications, such as video games, because there is a great need to make these applications playable on the above mentioned battery power devices. For that reason, the embodiments of present invention target primarily integrated GPUs, although it is applicable to discrete GPUs as well.
Integrated GPU (iGPU) is a graphics processor integrated onto a motherboard or right onto the CPU die as the graphic element of multicore, together with one or more CPU cores. Integrated GPUs utilize a portion of a computer's system memory rather than dedicated graphics memory. Integrated GPUs are, in general, cheaper to implement than discrete GPUs, but are typically lower in capability and operate at reduced performance levels relative to discrete GPUs. Integrated GPUs are used in embedded systems, mobile phones, personal computers, workstations, and game consoles. More than 90% of new desktop and notebook computers have integrated GPUs, which are usually far less powerful than those on a dedicated video card. Computers with integrated graphics account for 90% of all PC and notebook shipments. These solutions are less costly to implement than dedicated graphics solutions, but tend to be less capable. Historically, integrated GPUs were often considered unfit to play 3D games. However, modern integrated graphics processors are capable to struggle with the latest games. iGPUs like the Intel's HD Graphics 3000 and AMD's Fusion IGPs have improved performance that may match cheap dedicated graphic cards, but still lag behind the more expensive dedicated graphics cards. While older platforms had the IGP integrated onto the motherboard, newer platforms (Intel Core i series and AMD Fusion) integrate the GPU right onto the CPU die.
Gamer's satisfaction is a major factor in usage of video gaming products. It is based on the user's experience throughout the gaming session, which in turn depends on the frame rate, image resolution, responsiveness and on minimization of dull waitings (such as loading times). Unfortunately, the user's experience is very often jeopardized by the need to manage power consumption, by automatically lowering the frame rate, resolution or backlight for the sake of power reduction, but deteriorating the playability of the game. We define playability as the capability of a graphic's system to deliver an adequate player's experience in video games, despite power reduction. Player's experience is affected by several factors: frame rate, image resolution, responsiveness lag, asset loading time, and image quality. Playability is about delineating the limits for each one of those factors, and managing the power conservation in a manner that user's experience does not drop below the defined threshold. A region of playability is shown in FIG. 1, which is between the best and the bearable user's experience. The lowest limit of playability forces the lowest allowed power consumption, Threshold 1, preventing the deterioration of user's experience.
In prior art there are various ways to manage power consumption in graphics. All of them are based on manually activated transition to power saving mode, or on automatic transition to power saving mode triggered by frame duration, or by battery state. None is driven by a trade off of the power saving and playability of the game application, as in the present invention.
Typically, prior art's power consumption management solutions are driven by lowering performance, clock speeds and frequencies, refresh rate or adjusting screen brightness. According to Wyatt et al. in US 2008/0143729, a refresh rate of graphics subsystem is adjusted for power saving purposes, only under power saving mode, uncoupled to user experience. Lin et al., in US 2003/0233592 teaches two embodiments of power saving for graphics systems, one by disabling the graphics system for some gating time, and second by reducing the clock frequency of graphics rendering engine by a calculated clock-scale-factor. Both are triggered by a measured frame duration. Fan et al., US 2009/0295794, discloses power saving in GPU by disabling some of the stream processors, when the graphics processing unit is in the power-saving mode. Wyatt et al. in US 2012/0206461 teaches a self-refreshing display device operated in a self refresh mode for power saving. The graphics controller coupled to the display device is set in one or more power saving states. Woo-Up Kwon in US 2012/0280921 discloses a method for controlling screen brightness for power conservation, where the screen touch action is sensed. Hassan Azar et al., US 2010/0123725, disclose a method of adjusting pictures previously generated by a discrete GPU, by an integrated GPU. The adjustment may be used in conjunction with power saving techniques to maintain the image quality when display backlighting is reduced. The target of Hassan's invention is to adjust video images while minimizing the impact on graphics processing performance. However, it is not automatically aware of the playability limits of gaming applications.
Huang et al., US 2011/0157191, handles situations where a user operates a graphics intensive application from a relatively inexhaustible power source (such as a wall outlet operating on alternating current). When the source becomes unavailable, due to an energy blackout, or travel, etc, instead of terminating the application or operating off the exhaustible DC power source, Huang teaches how to automatically limit the frame rate of an application executing in a discrete graphics processing unit operating off battery or other such exhaustible power source. By automatically limiting the frame rate, the rate of power consumption, and thus, the life of the current charge stored in a battery may be extended. Another embodiment of Huang allows for the more effective application of automatic power conservation techniques during detected periods of inactivity, by applying a low power state immediately after a last packet of a frame is rendered and displayed. By no means Huang's invention takes care for playability of a gaming application.
The white paper “Dynamic Resolution Rendering” by Doug Binks of Intel, describes how developers can dynamically vary the resolution of their rendering instead of having a static resolution selection. Their dynamic resolution rendering uses a viewport function to constrain the rendering to a portion of an off-screen render target, and then to scale the view. This is ported to the application as part of its customized code, or used by graphic application developers for their rendering. Applications without customized porting cannot use the dynamic resolution rendering.
All the above mentioned methods and systems: adjusted refresh rate, gated disabling of a graphics system, reduced clock, reduced screen brightness, dynamic resolution rendering, or picture adjustment, all are targeting power saving. However, no prior art exists for an application transparent playability, where the monitoring of frame rate or image resolution, for an improved power consumption, improved user experience or for another purpose, can be implemented in any gaming application. In prior art there is a need to port a specialized code, prior to running the application (such as described in “Dynamic Resolution Rendering” by Doug Binks of Intel), as part of the application.
Specifically, the dynamic resolution rendering in prior art uses a viewport function to constrain the rendering to a portion of an off-screen render target, and then to scale the view. This is ported to the application as part of its code.
Evidently, applying power saving method in a real time graphics application without being aware of playability, would eventually deteriorate user's experience.